Autonomous machine

ABSTRACT

An autonomous machine is configured to explore the area in which it is located, constructing a map of the area based on information collected by the machine as the machine explores the area. The machine determines when it has returned to a previously visited position within the area. The map is corrected when the machine returns to the previously visited position, based on the knowledge that the current position and the previously visited position are the same.

FIELD OF THE INVENTION

This invention relates to an autonomous machine, such as an autonomousmachine for cleaning a floor area.

BACKGROUND OF THE INVENTION

There have been various proposals to provide autonomous or roboticmachines for performing duties such as cleaning or polishing a floorarea or for mowing grass. In their simplest form, an autonomous machinerequires a training phase during which the machine is manually ledaround the area in which it is to work. Following this training phase,the autonomous machine will then perform the required work as it followsthe path which it stored in its memory during the training phase. Othermachines may simply follow a predetermined route which is marked bymeans such as a cable which is buried beneath the working area.

Other autonomous machines are supplied with a map of the environment inwhich they are to be used. The machine then uses this map to plan aroute around the environment.

There have also been proposals for autonomous machines which are capableof exploring the environment in which they are placed without humansupervision, and without advance knowledge of the layout of theenvironment. The machine may explore the environment during a learningphase and will subsequently use this information during a working phase.An autonomous machine shown in WO 00/38025 initially travels around theperimeter of an area, recognises when it has completed a single lap ofthe area, and then steps inwardly after that and subsequent laps of theroom so as to cover the area in a spiral-like pattern. Autonomousmachines are known to build a map of the working area using theinformation they acquire during the learning phase. Autonomous machinesof this last type are particularly attractive to users as they can beleft to work with minimal human supervision.

Autonomous machines usually have some form of odometry system formeasuring the distance and direction travelled by the machine. Distanceand direction information can be derived from sensors which monitormovement of each of the wheels. The machine uses the odometryinformation to deduce how far it has travelled since a starting positionin the working area, and thus where it currently is located within thearea. Unfortunately, relying on odometry information alone is unreliableas errors can quickly accumulate, and this can eventually lead to acomplete disorientation of the machine. For example, if one of the drivewheels of the machine slips on the floor surface the odometry systemwill record a movement, since the wheel has turned, whereas, due to thewheel slippage, the machine does not actually move across the surface.Poor odometry information results in a difference between the calculatedposition of the machine and the actual position of the machine. In afloor cleaning machine this could result in the machine not travellingacross some areas of the floor surface, which would remain dirty, or themachine becoming lost.

Odometry information can be supplemented, or replaced entirely, by otherinformation. A paper entitled “Gyrodometry: A New Method for CombiningData from Gyros and Odometry in Mobile Robots” presented at the 1996IEEE International Conference on Robotics and Automation, Minneapolis,Apr. 22–28, 1996, pp. 423–428, describes a proposal for reducing theproblems of odometry-based robots in which the odometry data issubstituted by gyro data during the short periods when odometry data isunreliable. Some systems position navigation beacons around an area suchthat the machine can calculate its position by a process oftriangulating information received from a number of beacons. However,this has the obvious disadvantage of requiring beacons to be positionedaround each area where the machine will work, and the associated cost ofthese beacons. U.S. Pat. No. 6,255,793 describes a system of this typewhere the boundary of the working area is defined by markers. One of theways in which the calculated location of the autonomous machine can becorrected is by detecting the presence of markers which each have aunique identity.

SUMMARY OF THE INVENTION

The present invention seeks to provide an improved autonomous machine.

A first aspect of the present invention provides an autonomous machinecomprising:

-   -   driving means for moving the machine along a surface, and    -   a navigation system, including a memory means, for navigating        the machine around an area,        the navigation system comprising:

-   means for causing the machine to explore a boundary of the area in    which it located, constructing a map of the area based on    information collected by the machine as the machine explores the    area,

-   means for determining when the machine has returned to a previously    visited position within the area,

-   means for correcting the map when the machine returns to the    previously visited position, based on the knowledge that the current    position and the previously visited position are the same.

This allows the machine to create a map which is an accuraterepresentation of the area, even where the machine may suffer fromerrors in gathering information to construct the map, such as the errorswhich accumulate when relying on odometry information.

Preferably, the exploring means is arranged to cause the machine tofollow a boundary of the area, storing path information on the pathtravelled by the machine as the machine follows the boundary; and thedetermining means is arranged to determine when the machine has returnedto a previously visited position in the area by comparing the latestsection of the path travelled by the machine with informationrepresenting a section of the path previously stored in the memory, andfor deciding when the new path information and previously stored pathinformation are substantially the same.

The boundary can take many forms. In a room of a building, the boundarywill be the walls of the room and the boundaries of objects placedwithin the room such as items of furniture. In an outdoor area, theboundary may be a pre-existing barrier such as a fence or wall or it maybe any form of barrier which is positioned especially for use with theautonomous machine.

As an alternative to using path data to recognise when the machine hasreturned to a previously visited position, the machine can usefeature-based information which is collected by sensors on the machine.The feature-based information can be light-based information such as theamplitude, direction and/or colour of light at positions within theroom, magnetic measurements or distance measurements. Alternatively, themachine could recognise some kind of marker at a position in the area.

The navigation system can be implemented entirely in hardware, insoftware running on a processor, or a combination of these. Accordingly,a further aspect of the present invention provides software foroperating the cleaning machine in the manner described herein. Thesoftware is conveniently stored on a machine-readable medium such as amemory device.

The autonomous machine can take many forms: it can be a robotic vacuumcleaner, floor polisher, lawn mower or a robotic machine which performssome other function. Alternatively, it could be a general purposerobotic vehicle which is capable of carrying or towing a work implementchosen by a user.

BRIEF DESCRIPTION OF THE DRAWINGS

Embodiments of the present invention will now be described, by way ofexample only, with reference to the accompanying drawings, in which:—

FIG. 1 shows an embodiment of an autonomous machine according to theinvention;

FIG. 2 shows the electrical systems in the machine of FIG. 1;

FIG. 3 shows the overall set of machine behaviours;

FIG. 4 shows the method for navigating the machine around the boundaryof a working area;

FIGS. 5 and 6 show the machine operating in an example room scenario;

FIG. 7 shows the process for matching path sections;

FIG. 8 shows the machine-generated map of the working area following aninitial traverse of the boundary of the working area;

FIG. 9 shows the map correction process;

FIG. 10 shows the coordinate system used in the map correction process;

FIG. 11 shows the method for scanning the working area;

FIG. 12 shows a reciprocating scanning movement;

FIG. 13 shows the map of a room and free space areas;

FIG. 14 shows one of the selected free space areas of the room;

FIG. 15 shows types of free space areas which may exist within the room;

FIG. 16 shows a way of reaching scanning start points;

FIG. 17 shows a way of coping with centrally positioned objects; and,

FIGS. 18–20 show scanning behaviours.

DETAILED DESCRIPTION OF THE INVENTION

FIG. 1 of the drawings shows a robotic, or autonomous, floor cleaningmachine in the form of a robotic vacuum cleaner 100.

The cleaner comprises a main body or supporting chassis 102, two drivenwheels 104, a brushbar housing 120, batteries 110, a dust separating andcollecting apparatus 130, a user interface 140 and various sensors 150,152, 154. The supporting chassis 102 is generally circular in shape andis supported on the two driven wheels 104 and a castor wheel (notshown). The driven wheels 104 are arranged at either end of a diameterof the chassis 102, the diameter lying perpendicular to the longitudinalaxis of the cleaner 100. The driven wheels 104 are mounted independentlyof one another via support bearings (not shown) and each driven wheel104 is connected directly to a traction motor which is capable ofdriving the respective wheel 104 in either a forward direction or areverse direction. A full range of manoeuvres are possible byindependently controlling each of the traction motors.

Mounted on the underside of the chassis 102 is a cleaner head 120 whichincludes a suction opening facing the surface on which the cleaner 100is supported. A brush bar 122 (not shown) is rotatably mounted in thesuction opening and a motor is mounted on the cleaner head 12Q fordriving the brush bar.

The chassis 102 carries a plurality of sensors 150, 152, 154 which arepositioned on the chassis such that the navigation system of the cleanercan detect obstacles in the path of the cleaner 100 and the proximity ofthe cleaner to a wall or other boundary such as a piece of furniture.The sensors shown here comprise several ultrasonic sensors 150 which arecapable of detecting walls and objects and several passive infra red(PIR) sensors which can detect the presence of humans, animals and heatsources such as a fire. However, the array of sensors can take manydifferent forms. Position Sensitive Devices (PSDs) may be used insteadof, or in addition to, the ultrasonic sensors. In an alternativeembodiment the cleaner may navigate by mechanically sensing the boundaryof the working area and boundaries of obstacles placed within the area.Each side of the vehicle carries an odometry wheel. This is a non-drivenwheel which rotates as the machine moves along the surface. Each wheelhas an optical encoder associated with it for monitoring the rotation ofthe odometry wheel. By examining the information received from eachodometry wheel, the navigation system can determine both the distancetravelled by the machine and the change in angular direction of themachine. It is preferred that the odometry wheel is a non-driven wheelas this increases the accuracy of the information obtained from thewheel. However, a simpler embodiment of the machine can derive odometryinformation directly from one of the driven wheels.

The vacuum cleaner 100 also includes a motor and fan unit supported onthe chassis 102 for drawing dirty air into the vacuum cleaner 100 viathe suction opening in the cleaner head 120.

FIG. 2 shows, in schematic form, the electrical systems for the cleanerof FIG. 1. The navigation system comprises a microprocessor 200 whichoperates according to control software which is stored on a non-volatilememory 210, such as a ROM or FLASH ROM. Another memory 220 is usedduring normal operation of the machine to store data, such as the pathdata and a map of the working area, and other operating parameters. Thenavigation system receives inputs about the environment surrounding themachine from sensor array 150, 152, 154 and inputs about movement of themachine from odometry wheel movement sensors 160, 162. The navigationsystem also receives inputs from switches 142 on the user interface,such as start, pause, stop or a selection of operating speed or standardof required cleanliness. The navigation system provides a plurality ofoutput control signals: signals for driving the traction motors 105 ofthe wheels 104, a signal for operating the suction motor 132 whichdrives the suction fan 130 and a signal for operating the motor 122which drives the brush bar 125. It also provides outputs fromilluminating indicator lamps 144 on the user interface 140. Power issupplied by rechargeable battery packs 110.

Navigation Method

The operation of the machine will now begin to be described withreference to FIGS. 3–7. FIG. 3 is a flow chart of the overall set ofbehaviours followed by the machine. FIG. 4 is a flow chart of theprocess for navigating around a boundary of the working area. FIGS. 5and 6 show an example of a working area in a room of a house, the roomhaving a boundary which is defined by walls 405, a doorway 410, a fireplace 415 and articles of furniture 420–426 (e.g. sofa, chair) placedagainst the walls of the room. These figures also show an example path430 taken by the machine. FIG. 6 illustrates the path matching process.

When the machine is first started it has no knowledge of the area inwhich it is positioned. Thus, the machine must first explore the area inwhich it is to work to acquire a knowledge of the area.

Boundary Scanning

The machine is left in the room by a user. Ideally the user is requiredto place the machine pointing towards an outer boundary of the room orwith its left side against the boundary. The user can start the machineat any point on the boundary. In FIG. 4 the machine is shown starting atpoint A. The first action of the machine is to detect the closest wall405 (step 305) and move towards it. The machine then aligns to the wall(point B) and starts the suction motor 132 and brush bar motor 122. Itwaits until the motors reach operating speed and then moves off. Themachine then begins to navigate around the boundary of the room,continuously detecting the presence of the wall and maintaining themachine at a predetermined distance from the wall. The machine navigatesaround the obstacles 420–426 in the same manner as for the walls 405,maintaining the machine at a predetermined distance from the obstacles.The machine continuously records information about the path that ittakes in following the boundary of the room. The machine derivesinformation on the distance and direction of travel from the odometrywheel sensors 160, 162.

As the machine follows the boundary of an area, the navigation systemsamples, at regular distance intervals, the angular change in directionof the machine (compared with the direction at the previous sample). Itis important to note that this information represents the path (ortrajectory) of the machine rather than information about objects that itsenses around it. The distance between samples will depend, inter alia,on the environment where the machine is used, the processing poweravailable, memory size, the matching criteria. At each sample period,the navigation system determines the angular change in the direction ofthe machine compared with the previous sample. The angular change isstored in the memory 220 as part of a vector of all sampled values. FIG.5 shows part of the path 430 followed by the machine. At each samplingpoint 500 the corresponding arrow and angular value indicates the changecompared with the previous sampling point 500.

In addition to recording the angular direction changes at regular,fairly widely spaced apart intervals, the navigation system also plots,in detail, the path followed by the machine in order to construct a mapof the working area. FIG. 8 shows an example of the map of the roomshown in FIG. 4. Each point of the machine's path around the boundary isdefined by a coordinate on the map. Also, as will be described later,the machine uses sensors on the left and right hand sides of the machineto detect the distance to the nearest obstacles on each side of themachine. This ‘distance to obstacle’ information is recorded on the mapfor points along the machine's path.

As soon as the machine has travelled a distance L, it begins to comparethe last L meters worth of the angular path data with previous L meterblocks of path data to find a match and hence to establish whether themachine has returned to a previously visited position along theboundary. Once the machine has made one complete clock-wise trip aroundthe boundary of the room, and arrived again at point B, the matchingprocess should not yet have found a suitable path match, so the machinecontinues to follow the boundary.

At point C′ (i.e. point C on the second lap of the room) the machinerecognises that it has returned to a previously visited position on theboundary of the room. This is because the matching process will havefound a suitable match between the most recent L meters worth of pathdata and the initial L meters worth of path data stored by the machine.This completion point will always result in a L meter overlap of theboundary that is double covered. Once the start point has been detectedthe machine stops and shuts down the suction and brush bar motors.

The matching process works by comparing a block (‘window’) of the storeddirection data with a previously stored block of direction data. Thistechnique is often called a sliding window technique.

The angular change of direction data is processed by a sub-samplingprocess to derive three other sets of data, which are also stored in thepath data vector. (Note, for simplicity only two sub-sampled sets ofdata are shown in FIG. 7.) Each sub-sampled set of data represents acoarser interpretation of the actual path travelled by the machine.Since even a good machine is likely to vary in the first and secondattempts that it takes to traverse the same portion of boundary, thesesub-sampled data sets provide useful information on the underlyingdirection changes which are likely to form a good match in the matchingprocess.

For each level of sub-sampling, the most recent window of data iscompared with earlier, equally sized, windows of data in the overalldata vector. For each comparison, each element in the new and testedwindows of data are compared. The overall difference between the twowindows of data, at each sub-sampling level, is converted to a metricrepresentative of the ‘quality of match’. We favour using a percentagevalue, but other techniques can equally be used. The matching processhas a threshold value for the ‘quality of match’ metric which indicates,from experience, a positive match between two sets of path data. Forexample, we have found a match of >98% is indicative of a positive matchbetween two sets of path data which represent the same position in aroom. A skilled person will appreciate that there are many refinementswhich can be made to this basic scheme and many other ways in which thepath data can be compared.

The matching process allows the machine to establish when it hasreturned to a start position on the boundary. This is something that amachine must discover when it is set to work in an area of which it hasno advance knowledge of the size, shape, layout etc.

While the machine is moving around the boundary it stores sections ofpath data from the boundary path as “markers”. The use of markers willbe described more fully below. They are a way of allowing the machine toquickly determine its position on the boundary. The number of markersthat are stored around the boundary depends on the amount of processingpower available in the matching engine of the machine—more markersrequires more comparisons. If the machine can only store a limitednumber of markers, the navigation system can automatically expand thedistance between the markers as the length of the perimeter increases.

The path length L required for matching, the distance between samplingpoints and the quality metric threshold indicative of a strong match areall dependent on the working area and conditions where the machine willbe used. These can be readily determined by trial. In a domesticenvironment we have found that a distance L of 3.6 m, a distance betweensampling points of 7.5 cm and markers positioned every 2 m around theboundary provides good results.

Boundary Map Correction

As described above, the initial exploration process involves the machinefollowing the boundary for just over one full circuit, and storing thepath that the machine follows. The machine determines that it hasreturned to the starting point on the boundary after an overlapdistance. As shown in FIG. 8, the boundary map produced in this way isusually not closed, which means that the common start 800 and finish 802path sections (which in the real world are the same, as identified bythe path matching process) have different locations and orientations dueto accumulated odometry errors. It is necessary to represent all pathpoints on a single Cartesian co-ordinate system (frame), though thechoice of frame is arbitrary. If we choose the frame to be that of thefinish point of the robot, then the error in the path increases as wemove backwards from the finish section, along the travelled path,towards the start point.

The map closure (correction) process progressively deforms the map as wetravel from the end (no deformation) to the start (maximum deformation)such that the start segment maps onto the finish segment. This ensuresthat we have zeroed the error at the start point and have generallyreduced the error elsewhere.

FIG. 9 shows the steps of the map correction process. The initial stepsof the process 355, 360 are the boundary following method. We can set uptwo local Cartesian coordinate systems (local frames or views) V₁ and V₂such that the their origins and x-axes are positioned and orientedrelative to corresponding locations in the start and finish boundary mapsegments, respectively, which were identified by the path matchingprocess.

As shown in FIG. 10, a view is defined by three vectors, a positionvector r for the origin, and unit vectors for the local x and y axes,e_(x) and e_(y).

The position of any point p in a view is given in vector notation by:p _(x)=(p−r)·e _(x) p _(y)=(p−r)·e _(y)or equivalently in matrix notation:

$p^{\prime} = {{{M( {p - r} )}\mspace{14mu}{where}\mspace{14mu} M} = \begin{bmatrix}\langle e_{x} \rangle \\\langle e_{y} \rangle\end{bmatrix}}$

In view V₁, the start of the boundary is at the origin and a tangent tothe boundary at the start points along the x-axis. Similarly, in viewV₂, the start of the overlapping segment is at the origin, and thetangent to the path at this point is along the x-axis. By “looking” atthe start with V₁ and the finish with V₂, the projection of start andfinish segments have the same position and orientation. For points Pbetween the start and finish, we must use some intermediate view betweenV₁ and V₂. As a view is a linear operator, and as error accumulates asthe robot travels on its path, a simple scheme is to linearlyinterpolate between the two as a function of the proportion of the totalboundary length travelled.V _(i)(ρ)=(1−ρ)V ₁ +ρV ₂and the position of any intermediate path point is given by:p _(p) =V _(i)(ρ)p _(ρ)

The view which projects each point into the new map changes smoothlyfrom the start view to the end view as we travel along the boundary pathfrom start to finish.

Finally, to make the finish segment correspond to the segment in therobot co-ordinate system, a post-projection rotation and translation isapplied (step 380).

An alternative way of considering the map correction is as follows. Whenthe machine has completed a circuit of the area and the path matchingprocess has determined that the machine has returned to a knownposition, it is possible to calculate the difference in distance andangle between the two points on the navigation system's map of the areawhich are known to be the same position. This total accumulated errorcan then be divided among the coordinates which have been recorded forthat initial traverse of the area. In its simplest form, the error canbe equally divided among all of the points in a linear manner (smallportion of the error for the points near the start, larger portion forthe pints near the finish.) Once the machine has updated the mapcoordinates, it uses the updated map for the subsequent navigation ofthe area.

Once the machine has established a good map of the working area themachine then begins the task of cleaning the entire floor area, which isdescribed in the flow chart of FIG. 11.

The basic technique that the machine uses to cover a floor area is areciprocating scanning movement, as shown in FIG. 12. That is, from astart point 450, the machine follows a set of parallel straight linepaths 451, each path 451 being followed by a step across movement 455that positions the machine pointing back in the direction from which ithas just come but translated one brush bar width across in the directionof the scan. The straight line path is maintained by monitoring theorientation of the machine and correcting the speeds of the left andright traction motors so as to maintain a straight line. The step acrossaction can take place in multiple segments, as shown by action 460. Thisallows the machine to match the profile of the object that has impededthe straight trajectory. There are a number of movement sequences thatare used to maximise the depth of the scan and these are detailed afterthis general description. Eventually the machine will no longer be ableto continue scanning in the direction it has chosen. This will occurwhen there is no more space to move into or when there have been anumber of short traverses.

For a simple room, the machine may be able to completely traverse thefloor area with one reciprocating scanning movement. However, for mostroom layouts the combination of unusual room shape and objects placedwithin the room (particularly objects positioned away from the walls)will require two or more separate scanning movements.

Once the boundary map has been corrected the machine examines the shapeof the room and looks for the most appropriate point to start thecleaning scan from. There are various ways of doing this.

Room Scanning

A preferred way of scanning the room will now be described. Initiallythe machine looks for uncleaned regions that are adjacent to theboundary. As the machine travelled around the boundary of the area italso used the sensor or sensors on the sides of the machine to measurethe distance to the nearest obstacles located to the sides of themachine and recorded that information on the map. Once the machinecompletes a lap of the boundary of the area it then processes the‘distance to obstacle’ data to derive a free space vector. The freespace vector (605, FIG. 13) represents the amount of uncleaned space ina direction from that point on the map. The free space will be thedistance to an obstacle minus any distance that the machine has alreadycovered during its path. The free space vectors are plotted on the mapat regular points around the boundary path. Since the machine has nottravelled through the centre of the area, and lacks any advanceknowledge of the layout of the area, this is the best information thatthe machine has of the layout of the area within the boundary. Whendeciding where to begin scanning, the navigation system looks at where,on the map, the free space vectors are located (step 505, FIG. 11). Thesystem looks for the longest length of boundary with free space vectors.An alternative criterion is for the system to choose the closestboundary section to the machine's current position which has free spacelocated adjacent to it. Boundary sections with free space adjacent tothem are located at 610, 612, 614. Having found the longest boundarywith free space (section 610), the navigation system attempts to findthe dominant edge orientation of this part of the area (step 520). Inperforming a reciprocating pattern, the machine is particularly prone toaccumulating odometry errors at the places where it turns through 180degrees. Thus, it is preferred to traverse an area in a manner whichminimises the number of turns. We have found that the dominant edgeorientation of an area has been found to be the best direction totraverse an area.

There are various ways in which the dominant edge orientation can befound. One way is to plot the direction (as an absolute angle) of eachsegment of the selected path section 610 on a histogram. One axis of thechart represents the absolute angle of the paths and the other axisrepresents the accumulated length of path, segments at a particularangle. For a complicated path this could result in a lot of computation.The computation can be simplified by only recording a segment of thepath as a different angle when its angular direction differs from anearlier part of the path by more than a particular angular range, e.g.ten degrees. If this simplification is followed, the plot at eachangular value can be represented by a distribution curve. Segments whichare separated by 180 degrees can be plotted at the same angular value onthe bar chart since they are parallel to one another. This bar chart canbe readily processed to derive the dominant direction of the area.

Having identified the dominant direction, the navigation system isolatesthe area of the map in which the selected boundary path section lies, asshown in FIG. 14. The navigation system rotates the isolated part of thearea until it is aligned in the dominant direction and then finds theextremities of this part of the area. The navigation system then selectsone of the extremities as a start point for the scan.

A further analysis is made of the selected part of the room area. Thisdetermines whether the free space is located inside or outside theboundary. FIG. 15 shows two types of area which can be encountered. Aninternal free space area is enclosed by the boundary section whereas anexternal area free space area surrounds the boundary section. Thenavigation system can determine the type of free space area by summingthe angular change between each segment of the boundary section. Anangular change sum of 360 degrees indicates an internal area whereas anangular sum of −360 degrees represents an external area.

There are some heuristics in selecting the start point. If the endpoints 620, 630 of a scan area are spaced apart from one another on themap by more than a predetermined distance then they are considered torepresent an open area. If the free space area is an internal area, thenavigation system will try not to choose one of these end points as astart point as this will tend to cause the machine to scan towards theboundary in a direction which is possibly away from other free spacethat could be cleaned. The navigation system attempts to select a startpoint located elsewhere on the boundary, i.e. bounded on both sides byother path segments of the selected path section. A start point of thistype has been found to cause the machine to scan inwards into the arearather than outwards. When the machine scans inwards it can often cleanother free space areas after the isolated area has been cleaned, whichcan reduce the overall number of separate scanning operations that arerequired to cover the room area. Also, if there is a choice of startpoint, the nearer start point to the current position of the machine ischosen, providing the machine is able to localise (reset odometryerrors) before reaching the start point.

As shown in FIG. 16, once a start point on the map has been selected, anL meter section of the boundary path data preceding the desired scanstart point is extracted from the memory (step 530). If necessary, themachine then selects a point further back along the boundary from thestart of the extracted section and marks this as a target point. Themachine then attempts to find a path across the room to this targetpoint from its current location. It does this by searching the room mapfor places that it has previously visited it then plots a path overthese spaces to the target point on the boundary. It then moves to thetarget point and follows the boundary until it matches the trajectorysection for the start of the next cleaning scan. Matching of thissegment of the boundary path data is carried out in the same way as thatof matching to find the start position.

If it fails to find a route to the target point (step 545), eitherbecause the route was too risky or because it encountered an object onthe way, then it moves onto the boundary. It moves round the boundaryuntil it reaches one of the better free space points and starts a scanfrom there.

Once the machine reaches the scan start point it orients to the chosenscan direction (the dominant direction identified earlier) and proceedsto scan in a reciprocating manner into the uncleaned space (step 550).While the machine is moving in a straight line it is constantly checkingto see if it has already visited the space it is on. Once it sees thatit has run over a previously visited space by its own length then itstops and carries out a step across. Since this step across is in openspace it is a single segment step across. This cleaning scan continuesuntil either it is blocked or there have been a small number of shorttraverses or the whole of the previous traverse was on space that hadbeen visited previously. During the scanning process, the navigationsystem records the travelled path on the map, such that the machineknows which positions of the map have been cleaned, and also continuesto record the distance to the nearest obstacle seen by the machine'ssensors on the map. After each scanning operation the machine processesthe distance information recorded on the map, taking account of theareas already cleaned by the machine, to calculate a free space vector.The free space vectors are plotted on the map and can then be used bythe navigation system to decide the next area where scanning shouldoccur.

A period of reciprocating scanning will induce odometry errors.Therefore, between each period of scanning, the machine looks for theboundary of the area and follows the boundary of the area (step 560). Asthe machine travels around the boundary of the area it stores the pathtravelled by the machine. The machine travels for a distance of at leastthe minimum distance necessary for finding a match, i.e. L meters. Thematching process attempts to match the new block of boundary path datawith the boundary path data that was originally stored in the memory. Ifa block of path data matches positively then the machine knows it hasreturned to a known position on the map and can thus rest the odometryerror to zero. If the matching process fails to find a good match thenthe machine will continue on the boundary until it should have reachedone of the marker positions. If this also fails then it assumes that itis on a central object.

If the machine correctly recognised a position on the boundary then itrealigns the just completed traverse scan and the boundary section ontothe free space map, based on the measured error between the machine'sperceived position on the map and the actual position on the map. Thenavigation system then finds the next largest uncleaned part of the area(step 505).

The machine then repeats the search for freespace and the moves to themuntil all the space that can be identified on the map has been completed(steps 510, 515).

During the matching process, in addition to looking for a strong matchbetween blocks of data, the matching process also makes a number ofsafety checks. It makes sure that the orientation of the matchingsection is roughly the same as the extracted section and that they bothroughly lie in the same part of the internal map. The odometry errorgradually increases with distance travelled. The matching process setsan event horizon, i.e. a boundary for possible positions on the mapwhere, due to odometry error, a match may occur. Any matches whichcorrespond to positions in the room which are not, due to the size ofthe odometry error, possible positions for the machine are discounted.

Central Objects

A complex area is likely to include obstacles which are located awayfrom the boundary of the area, such as a coffee table. FIG. 17 shows astrategy for coping with central objects. The machine performs ascanning operation 750 and eventually reaches a point at 760 where itcan no longer continue the scanning movement. The machine then proceedsto follow the edge of the object 785, cleaning around the edge of theobject. After travelling a distance of L meters around the object 785the machine will attempt to match the last L meter path section with thepath recorded around the boundary of the room. This should fail to givea suitable match. Thus, the machine recognises that it is following theedge of an object The machine jumps off of the object at position 780,on the remote side of the object in the direction of the scan, andfollows the boundary of the room 790 until it can match the travelledpath with the previously stored boundary path data. At this point thenavigation system can reset any odometry error and accurately place theposition of the object 785. Note, in following the edge of a centralobject, the machine may travel around the object several times until ithas travelled a distance of L meters.

Scanning Behaviours

FIGS. 18–20 show some of the ways in which the machine operates during ascanning operation. As previously described with reference to FIG. 12,the scanning operation comprises a series of parallel straight linepaths which are offset from one another by a distance W, which willusually be equal to the width of the cleaning head of the machine.However, irregular boundary shapes do not always permit the machine tofollow a regular scanning pattern. FIG. 18 shows a segmented step acrosswhere the machine follows the boundary 800 of the room in segments 804,806 until it has travelled the total required step across distance W. Ateach step the machine rotates until it sees a clear path ahead andtravels forward until it needs to turn. The step across distance W canbe determined from trigonometry of the travelled paths 804, 806. Acomplex step across movement may comprise more segments than are shownhere. This movement allows the machine to properly cover the floorsurface and to continue the scanning movement at the regular width W.

FIGS. 19 and 20 show other situations where the boundary prevents themachine from performing a regular step across movement. In FIG. 19 themachine reaches the end of movement 810 and follows the wall along path812 until it can step across at 813 to the proper scan separationdistance W. FIG. 20 shows a similar scenario where the machine musttravel back on itself along path 822 until it can travel across alongpath 823 and continue the scanning movement at the regular width W. Inthese movements the machine monitors, during path 810, 820 the distanceon its right hand side to the wall/obstacles to determine whether themachine will be able to step across to continue its scanning movement.

Markers

Markers are L meter sections of path data which can be used at varioustimes by the navigation system to quickly determine the current positionon the boundary. They are particularly useful in allowing the machine tocope with the kinds of errors that can occur when the machine is forcedto follow a different path around the boundary, e.g. because somethinghas been moved. If the machine is travelling around the boundary lookingfor a particular L meter section of the path but fails to find it, itwill usually find the marker positioned after that particular section ofrequired boundary and thus allow the machine to quickly recognise theerror. Markers are also useful when the machine attempts to travelacross a room area to reach a start point for a scan but misses it forsome reason. This may occur if the machine does not properly reach thetarget point before the L meter section of boundary preceding the startpoint (see FIG. 16). Should the machine not find the start point, itfollows the boundary of the area and should find the next marker on theboundary. Upon finding the marker the machine can recognise its errorand try again.

Alternatives

The described method of recognising a previously visited position in anarea by matching travelled path sections is dependent on severalfactors. Firstly, the navigation system should be able to cause themachine to travel in a closely similar manner when negotiating the sameboundary on different occasions. The value of the ‘quality of match’threshold and the process of sub-sampling path data so that the matchingprocess considers the underlying path rather than the detailed path doesallow for some variation between travelled paths while still allowing asuccessful match. Secondly, the matching process is dependent on the Lmeter path that is used during the matching process being unique to aposition in the room. In rooms that possess one or more lines ofsymmetry, it is possible for the L meter path to be common to two ormore positions within the room. Obviously, a truly rectangular room withno other obstacles on the boundary would cause a problem. The system canbe made more robust in several ways.

Firstly, the length of the path used in the matching process can beincreased until it does represent a unique position in the room. Thiscan be performed automatically as part of the navigation method. Shouldthe machine travel for more than a predetermined time period withoutfinding a match, the navigation system can automatically increase thelength of the matching window.

Secondly, the path data can be supplemented by other informationgathered by the machine during a traverse of the area. This additionalinformation can be absolute direction information obtained from anon-board compass, information about the direction, intensity and/orcolour of the light field around the machine obtained from on-boardlight detectors or information about the distance of near or far objectsfrom the machine detected by on-board distance sensors. In each case,this additional information is recorded against positions on thetravelled path.

The map correction process described above applies a linear correctionto the travelled path. In an alternative embodiment, the accumulatederror can be divided among the set of coordinates in a more complexmanner. For example, if the machine is aware that wheel slippageoccurred half way around the traverse of the room boundary, it candistribute more (or all) of the accumulated error to the last half ofthe path coordinates.

The above method describes the machine following a clockwise path aroundan area. The machine may equally take an anti-clockwise path around thearea during its initial lap of the boundary of the area. Also, infollowing the boundary to reach a start position for area scanning, themachine may follow the boundary in a clockwise or anti-clockwisedirection.

In performing the cleaning method, it is preferred that the cleaningmachine steps across by substantially the width of the cleaner head onthe cleaner so that the cleaning machine covers all of the floor surfacein the minimum amount of time. However, the distance by which thecleaning machine steps inwardly or outwardly can have other values. Forexample, by stepping by only a fraction of the width of the cleanerhead, such as one half of the width, the cleaning machine overlaps witha previous traverse of the room which is desirable if a user requires aparticularly thorough cleaning of the floor. The step distance can bechosen by the user. There are various ways in which the user can choosethe step distance: the user can be presented with a plurality of buttonsor a control that specifies the step distances, or controls havingsymbols or descriptions indicative of the effect of the cleaneroperating at the step distances, such as “normal cleaning”, “thoroughcleaning”. The buttons can be incorporated in the user panel (140, FIG.1), a remote control or both of these.

1. An autonomous machine comprising: a drive for moving the machinealong a surface, and a navigation system, including a memory, fornavigating the machine around an area, the navigation system comprising:an exploration unit causing the machine to explore a boundary of thearea in which it is located, constructing a map of the area based oninformation collected by the machine as the machine explores the area, adetermining unit determining when the machine has returned to apreviously visited position within the area, and a corrector correctingthe map when the machine returns to the previously visited position,based on knowledge that the current position and the previously visitedposition are the same.
 2. An autonomous machine according to claim 1,wherein the corrector is configured to distribute any error among thepoints on the map which has been constructed.
 3. An autonomous machineaccording to claim 2, wherein the exploring unit is configured to storepath information on a path travelled by the machine as the machinefollows the boundary; and the determining unit is configured todetermine when the machine has returned to a previously visited positionin the area by comparing the latest section of the path travelled by themachine with information representing a section of the path previouslystored in the memory, and for deciding when the new path information andpreviously stored path information are substantially the same.
 4. Anautonomous machine according to claim 3, wherein the path information isstored at regular intervals.
 5. An autonomous machine according to claim4, wherein the path information is stored at intervals which are spacedby an equal distance from one another.
 6. An autonomous machineaccording to claim 3, 4 or 5, wherein the path information isrepresentative of a change in direction of the machine as the machinefollows the boundary of the area.
 7. An autonomous machine according toclaim 3, 4 or 5, wherein the navigation system is configured to derive,from the stored path information, a second set of path information whichis a less detailed representation of the travelled path.
 8. Anautonomous machine according to claim 7, wherein the navigation systemis configured to use the second set of path information in decidingwhether the new path information and previously stored path informationare substantially the same.
 9. An autonomous machine according to claim1, wherein the exploring unit is configured to store path information ona path travelled by the machine as the machine follows the boundary; andthe determining unit is configured to determine when the machine hasreturned to a previously visited position in the area by comparing thelatest section of the path travelled by the machine with informationrepresenting a section of the path previously stored in the memory, andfor deciding when the new path information and previously stored pathinformation are substantially the same.
 10. An autonomous machineaccording to claim 9, wherein the path information is stored at regularintervals.
 11. An autonomous machine according to claim 10, wherein thepath information is stored at intervals which are spaced by an equaldistance from one another.
 12. An autonomous machine according to claim9, 10 or 11, wherein the path information is representative of a changein direction of the machine as the machine follows the boundary of thearea.
 13. An autonomous machine according to claim 12, wherein the pathinformation is a relative change in direction of the machine compared toa previous point at which path information was stored.
 14. An autonomousmachine according to claim 9, 10 or 11, wherein the navigation system isconfigured to derive, from the stored path information, a second set ofpath information which is a less detailed representation of thetravelled path.
 15. An autonomous machine according to claim 14, whereinthe navigation system is configured to use the second set of pathinformation in deciding whether the new path information and previouslystored path information are substantially the same.
 16. An autonomousmachine according to claim 9, 10 or 11, wherein the navigation systemfurther comprises a sensor sensing another parameter and storing thisother parameter in the memory along with the path information as themachine follows the boundary of the area.
 17. An autonomous machineaccording to claim 16, wherein the navigation system also uses, on atleast some occasions, the other parameter to determine when the machinehas returned to a previously visited position in the area.
 18. Anautonomous machine according to claim 17, wherein the other parameter isan absolute direction of the machine.
 19. A method of controlling anautonomous machine comprising: causing the machine to explore a boundaryof the area in which it is located, constructing a map of the area basedon information collected by the machine as the machine explores thearea, determining when the machine has returned to a previously visitedposition within the area, and correcting the map when the machinereturns to the previously visited position, based on the knowledge thatthe current position and the previously visited position are the same.20. A computer-readable storage medium storing a program which, whenexecuted by an autonomous machine, causes the machine to perform amethod, the method comprising: causing the machine to explore a boundaryof the area in which it is located, constructing a map of the area basedon information collected by the machine as the machine explores thearea, determining when the machine has returned to a previously visitedposition within the area, and correcting the map when the machinereturns to the previously visited position, based on the knowledge thatthe current position and the previously visited position are the same.